#ifndef  _ENCLOSURE_H_

#define  _ENCLOSURE_H_

#include <stdio.h> 

#include <stdlib.h>

#include "struct.h" 

typedef struct comp {   // 在 Rank 中 用来存储参与排名的学生的信息

    char name[20];  // 学生姓名

    char id[20];  // 学生学号

    float complex_grade; // 综合成绩

}comp;

typedef struct rule { // 在 Rank 中 存储用户定制的排名规则

    int judge; //-1 时表示不使用自定义学科，否则则表示自定义学科的总数

    char filter[100][20]; // 自定义的学科

    int type[4]; //-1 表示包含这一类的课程

}rule;

int Cmp(const void* p1, const void* p2); // 在 Rank 中给 qsort 使用的比较函数

float Calu_bouns(student* p_cur); // 算政策加分

float Calu_common(student* p_cur, rule* diy); // 算课程分

int Check_int(char* obj, int length, int ran1, int ran2); //字符串转正整数

float Check_float(char* obj, int length, float ran1, float ran2); //字符串转正浮点数

int Check_split(char member[][20], char str[], char mark, int max, int unit); // 多成员字符串分割

int Check_space(char* str); //检查是否有空格

float Get_gpa(float grade); // 字符串转gpa

student* id_search_student(char* id);

subject* node_search_subject(student* p, char* node);

project* node_search_project(student* p, char* node);

paper* node_search_paper(student* p, char* node);

medal* node_search_medal(student* p, char* node);

void print_subject(subject* les);

void print_project(project* pro);

void print_paper(paper* pap);

void print_medal(medal* med);

#endif